package com.kristin.sort;

/**
 * 选择排序
 * 总是选取数组中的最小的一个值，放在最左边
 * 空间复杂度:o(1)
 * 时间复杂度:o(n^2)
 */
public class SelectSort {

    public void sort(int arrs[]){
        for(int i = 0 ; i < arrs.length - 1 ; i++ ) {
            int min = i;
            for(int j = i + 1 ; j < arrs.length ; j++) {
                if(arrs[min] > arrs[j] ) {
                    min = j;
                }
            }
            // 交换
            if(min != i) {
                swap(min, i, arrs);
            }
        }

    }

    public void swap(int i , int j , int arrs[]) {
        int temp = arrs[i];
        arrs[i] = arrs[j];
        arrs[j] = temp;
    }

    public static void main(String[] args) {
        int[] arrs = new int[]{10, 9, 8, 7, 4, 3, 2, 1, 6, 5};
        new SelectSort().sort(arrs);
        print(arrs);
    }

    public static void print(int[] arrs) {
        for (int i : arrs) {
            System.out.print(i + "\t");
        }
    }

}
